package top.goldenyear.porpoise.infra.storage.core.service.db;

import top.goldenyear.porpoise.common.core.model.Ret;
import top.goldenyear.porpoise.infra.storage.config.FileConfig;
import top.goldenyear.porpoise.infra.storage.core.model.Media;

import java.util.Collection;

/**
 * @author airhead
 */
public interface DbFileService {

  void setFileConfg(FileConfig fileConfig);
  /**
   * 文件是否存在
   *
   * @param configId
   * @param bucket
   * @param key
   * @return
   */
  boolean exists(String configId, String bucket, String key);

  /**
   * 插入文件内容
   *
   * @param configId 配置编号
   * @param key      路径
   * @param media    内容
   */
  Ret put(String configId, String bucket, String key, Media media);

  /**
   * 删除文件内容
   *
   * @param configId 配置编号
   * @param key      路径
   */
  Ret delete(String configId, String bucket, String key);

  /**
   * 批量删除
   *
   * @param bucket
   * @param keys
   * @return
   */
  Ret deleteBatch(String configId, String bucket, Collection<String> keys);

  /**
   * 获得文件内容
   *
   * @param configId 配置编号
   * @param key      路径
   * @return 内容
   */
  Media get(String configId, String bucket, String key);
}
